// try // { // //Stáhni detail odeslané DZ // mySignedSentMessageDownload = IB.SignedSentMessageDownload(as_IDDZ); // } // catch (Exception err) // { // log.Warn("KONEC SignedSentMessageDownload na ISDS s chybou); // return result; // } // if (mySignedSentMessageDownload != null) // { // //Odstraň obálku !!!!!!!!!!!!!!!!! V této chvíli skončíme chybou There is an error in XML document (0, 0). !!!!!!!!!!!!!!!!! // tMessDownOutput mytMessDownOutput = (tMessDownOutput)IB.odstranBinarniObalkuPkcs(mySignedSentMessageDownload, "SentMessage"); // //ulozeni podepsane DZ i s obsahem // ws_ISDS.SaveFiles(ai_id_dokument, as_IDDZ, mySignedSentMessageDownload, -22, "ODESLANA_" + as_IDDZ, 0, out strException); // ws_ISDS.SaveSentEnvelopeMessage(mytMessDownOutput, ai_id_dokument, ai_id_dokument_kopie,ai_id_dok_kopie_rozdel, out strException); public Object odstranBinarniObalkuPkcs(Byte[] SMDO, String upravNameSpace) { System.Text.Encoding enc = System.Text.Encoding.UTF8; //Nahradni metoda Org Bouncycastle, odstrani PKCS7 obálku a převede obsah na string Org.BouncyCastle.Cms.CmsSignedData sdata = new Org.BouncyCastle.Cms.CmsSignedData(SMDO); Byte[] zpravaByte = (Byte[])sdata.SignedContent.GetContent(); String zpravaString = enc.GetString(zpravaByte); //Dle rady J. Šímy se provede úprava xml, aby bylo validní dle xsd schématu switch (upravNameSpace) { case "message": zpravaString = zpravaString.Replace("xmlns:q=\"http://isds.czechpoint.cz/v20/message\"", "xmlns:q=\"http://isds.czechpoint.cz/v20\""); break; case "SentMessage": zpravaString = zpravaString.Replace("xmlns:q=\"http://isds.czechpoint.cz/v20/SentMessage\"", "xmlns:q=\"http://isds.czechpoint.cz/v20\""); break; case "delivery": zpravaString = zpravaString.Replace("xmlns:q=\"http://isds.czechpoint.cz/v20/delivery\"", "xmlns:q=\"http://isds.czechpoint.cz/v20\""); break; default: //Neznamy parametr upravy namespacu throw new Exception("Neznámý parametr úpravy namespace"); } //Následující řádek je nutný pouze pokud se provádí validace vůči XSD, element isds_send je neznámý zpravaString = zpravaString.Replace("isds_send=\"https://www.czebox.cz/any/DS/dz\"", ""); //Deserializace xml do třídy tMessDownOutput případně tDeliveryMessageOutput StringReader sr = new StringReader(zpravaString); XmlReader reader = XmlReader.Create(sr); Object vysledek = null; if (upravNameSpace == "message" || upravNameSpace == "SentMessage") { !!!!!!!!!!!!!!!!! V této chvíli skončíme chybou There is an error in XML document (0, 0). !!!!!!!!!!!!!!!!! System.Xml.Serialization.XmlSerializer ser = new System.Xml.Serialization.XmlSerializer(typeof(tMessDownOutput), "xmlns:q=\"http://isds.czechpoint.cz\""); vysledek = (tMessDownOutput)ser.Deserialize(reader); } else if (upravNameSpace == "delivery") { System.Xml.Serialization.XmlSerializer ser = new System.Xml.Serialization.XmlSerializer(typeof(tDeliveryMessageOutput), "xmlns:q=\"http://isds.czechpoint.cz\""); vysledek = (tDeliveryMessageOutput)ser.Deserialize(reader); } return vysledek; }